// PropertySubWindow.h: interface for the PropertySubWindow class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PROPERTYSUBWINDOW_H__4BCE9CEF_C81B_4238_A262_2CB30298EF0A__INCLUDED_)
#define AFX_PROPERTYSUBWINDOW_H__4BCE9CEF_C81B_4238_A262_2CB30298EF0A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ustomVariable.h"
using namespace PropertySystem;

class PropertyWindow;
class PropertySubWindow  
{
public:
	PropertySubWindow();
	virtual ~PropertySubWindow();

public:
	virtual BOOL Create(CWnd* pParent, UINT nID);
	virtual void SetFont(CFont* pFont);
	void SetWindowPosition(const CRect& rect);
	void customVariable(PropertySystem::CustomVariable* pVar){
		m_pVar = pVar;
	}

	PropertySystem::CustomVariable* customVariable(){
		return m_pVar;
	}

	virtual void UpdatePropertyData(BOOL bState = TRUE) = 0;
	void UpdateData(){
		m_pVar->UpdateData();
	}

	void propertyWindow(PropertyWindow* pWnd){
		m_pPropertyWindow = pWnd;
	}

	PropertyWindow* propertyWindow(){
		return m_pPropertyWindow;
	}

	CString ShowString();
protected:
	PropertyWindow* m_pPropertyWindow;
	CStatic m_Prompt;
	CWnd* m_pContext;
	PropertySystem::CustomVariable* m_pVar;
};

#endif // !defined(AFX_PROPERTYSUBWINDOW_H__4BCE9CEF_C81B_4238_A262_2CB30298EF0A__INCLUDED_)
